import 'dart:io';

class ImageUtils{
  ImageUtils._();

  static Future<bool> saveImage(File file, String path) async {
    try {
      // 获取目标文件所在目录
      final directoryPath = path.substring(0, path.lastIndexOf('/'));
      final directory = Directory(directoryPath);

      // 检查目录是否存在，不存在则创建
      if (!await directory.exists()) {
        await directory.create(recursive: true);
        print("创建目录成功: $directoryPath");
      }

      // 判断源文件是否存在
      if (!await file.exists()) {
        print("源文件不存在");
        return false;
      }

      // 获取新的文件路径
      final newImage = File(path);

      // 如果文件已存在，先删除旧文件
      if (await newImage.exists()) {
        await newImage.delete();
        print("旧文件已删除: $path");
      }

      // 写入新的文件
      await newImage.writeAsBytes(await file.readAsBytes());
      print("文件保存成功: $path");
      return true; // 文件保存成功
    } catch (e) {
      print("保存文件时发生错误: $e");
      return false; // 如果发生任何错误，返回 false
    }
  }
}